package com.ssy.lingxi.member.merchant.model.vo.lifecycle.request;

import com.ssy.lingxi.member.merchant.handler.annotation.DateStringFormatAnnotation;
import com.ssy.lingxi.member.merchant.model.vo.basic.request.FileUploadVO;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.io.Serializable;
import java.util.List;

/**
 * 会员整改VO
 * @author yzc
 * @version 2.0.0
 * @date 2021/5/17
 */
public class MemberRectifyUpdateVO implements Serializable {
    private static final long serialVersionUID = 6681111318048595554L;

    /**
     * 主键id
     */
    private Long id;

    /**
     * 整改主题
     */
    @NotBlank(message = "整改主题不能为空")
    private String subject;

    /**
     * 下级会员id
     */
    @NotNull(message = "下级会员Id要大于0")
    @Positive(message = "下级会员Id要大于0")
    private Long subMemberId;

    /**
     * 下级角色id
     */
    @NotNull(message = "下级会员角色Id要大于0")
    @Positive(message = "下级会员角色Id要大于0")
    private Long subRoleId;

    /**
     * 整改期限开始, 格式为yyyy-MM-dd
     */
    @DateStringFormatAnnotation(message = "整改期限开始格式错误")
    private String rectifyDayStart;

    /**
     * 整改期限结束, 格式为yyyy-MM-dd
     */
    @DateStringFormatAnnotation(message = "整改期限结束格式错误")
    private String rectifyDayEnd;

    /**
     * 整改原因
     */
    @NotBlank(message = "整改原因不能为空")
    private String reason;

    /**
     * 整改要求
     */
    @NotBlank(message = "整改要求不能为空")
    private String require;

    /**
     * 整改要求附件
     */
    @Valid
    private List<FileUploadVO> attachments;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public Long getSubMemberId() {
        return subMemberId;
    }

    public void setSubMemberId(Long subMemberId) {
        this.subMemberId = subMemberId;
    }

    public Long getSubRoleId() {
        return subRoleId;
    }

    public void setSubRoleId(Long subRoleId) {
        this.subRoleId = subRoleId;
    }

    public String getRectifyDayStart() {
        return rectifyDayStart;
    }

    public void setRectifyDayStart(String rectifyDayStart) {
        this.rectifyDayStart = rectifyDayStart;
    }

    public String getRectifyDayEnd() {
        return rectifyDayEnd;
    }

    public void setRectifyDayEnd(String rectifyDayEnd) {
        this.rectifyDayEnd = rectifyDayEnd;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getRequire() {
        return require;
    }

    public void setRequire(String require) {
        this.require = require;
    }

    public List<FileUploadVO> getAttachments() {
        return attachments;
    }

    public void setAttachments(List<FileUploadVO> attachments) {
        this.attachments = attachments;
    }
}
